
        <html>
			<head>
			     <title>android测试环境搭建 - 瘦蛟舞</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/2624">http://drops.wooyun.org/tips/2624</a></h1>
				
      <p>
        <h2>0x01 测试机选择：真机or模拟器</h2>

<hr />

<p><strong>1.1 三大主流模拟器对比</strong></p>

<table>
  <tr>
    <th>
    </th>
    
    <th>
      Android Emulator
    </th>
    
    <th>
      Android-x86
    </th>
    
    <th>
      GenyMotion
    </th>
  </tr>
  
  <tr>
    <td>
      价格
    </td>
    
    <td>
      free
    </td>
    
    <td>
      free
    </td>
    
    <td>
      Free: Non-commercial Paid: Freelance, Business
    </td>
  </tr>
  
  <tr>
    <td>
      速度
    </td>
    
    <td>
      Slow for ARM – Faster for x86
    </td>
    
    <td>
      Fast
    </td>
    
    <td>
      Very fast
    </td>
  </tr>
  
  <tr>
    <td>
      支持版本
    </td>
    
    <td>
      Android Virtual Devices (All android versions)
    </td>
    
    <td>
      Only certain preconfigured devices, mostly tablet (Android 2.2-4.4)
    </td>
    
    <td>
      Pre-configured images for many tablet & phone devices of Google, HTC, LG, Motorola, Samsung, Sony (Android 2.3, 4.x)
    </td>
  </tr>
  
  <tr>
    <td>
      HTTP代理
    </td>
    
    <td>
      Yes (command-line option)
    </td>
    
    <td>
      Yes, via GUI
    </td>
    
    <td>
      Yes, via GUI
    </td>
  </tr>
  
  <tr>
    <td>
      Transparent Man-in-the-middle
    </td>
    
    <td>
      Yes – via DNS server
    </td>
    
    <td>
      Yes, via Virtualbox
    </td>
    
    <td>
      Yes, via Virtualbox
    </td>
  </tr>
  
  <tr>
    <td>
      Pre-rooted
    </td>
    
    <td>
      Yes
    </td>
    
    <td>
      Yes
    </td>
    
    <td>
      Yes
    </td>
  </tr>
  
  <tr>
    <td>
      虚拟机安全装时间
    </td>
    
    <td>
      5 minutes
    </td>
    
    <td>
      15 minutes
    </td>
    
    <td>
      5 minutes
    </td>
  </tr>
  
  <tr>
    <td>
      相机支持
    </td>
    
    <td>
      Since Android 4.0
    </td>
    
    <td>
      Very limited
    </td>
    
    <td>
      Yes
    </td>
  </tr>
  
  <tr>
    <td>
      GPS支持
    </td>
    
    <td>
      Yes
    </td>
    
    <td>
      No
    </td>
    
    <td>
      Yes
    </td>
  </tr>
  
  <tr>
    <td>
      Spoof IDs
    </td>
    
    <td>
      No
    </td>
    
    <td>
      No
    </td>
    
    <td>
      Paid version
    </td>
  </tr>
  
  <tr>
    <td>
      Drag&Drop Support
    </td>
    
    <td>
      No
    </td>
    
    <td>
      No
    </td>
    
    <td>
      Yes
    </td>
  </tr>
  
  <tr>
    <td>
      谷歌商店
    </td>
    
    <td>
      No, but can be installed
    </td>
    
    <td>
      Yes
    </td>
    
    <td>
      No, but can be installed
    </td>
  </tr>
  
  <tr>
    <td>
      开发者工具支持
    </td>
    
    <td>
      Yes
    </td>
    
    <td>
      Yes
    </td>
    
    <td>
      Yes, via plugins
    </td>
  </tr>
  
  <tr>
    <td>
      镜像支持
    </td>
    
    <td>
      One
    </td>
    
    <td>
      Offline, via Virtualbox
    </td>
    
    <td>
      Offline, via Virtualbox
    </td>
  </tr>
</table>

<!--more-->

<p><strong>1.2 总结</strong></p>

<p>真机快功能全，模拟器成本低 有条件的话建议真机模拟器混合使用 如果用模拟器的话建议GenyMotion</p>

<h2>0x02 探测修改流量</h2>

<hr />

<p><strong>2.1 http代理设置</strong></p>

<p>电脑代理：Fiddler、burp suite等</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393192865.png" alt="enter image description here" /></p>

<p>手机代理：proxydroid等</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393143931.png" alt="enter image description here" /></p>

<p>Proxydorid运行机制</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393132112.png" alt="enter image description here" /></p>

<p>默认设置只能代理80和443的http流量，如果是其他端口的http流量就需要配置iptables转发端口到手机的8123或者8124端口上。</p>

<p><strong>2.2 Ad-hoc无线网络</strong></p>

<p>简单说就是用自己电脑开个wifi热点，这样做比直接在同LAN中设置代理的好处是，android上的代理软件不一定会把所有流量转发到pc上，如果自己pc开的热点就不会存在该问题，这样就可以用wireshark抓取这些不能代理的流量了。 设置方法如下： Dos下运行，设置热点</p>

<pre><code>netsh wlan set hostednetwork mode=allow ssid=test key=test1234
</code></pre>

<p>控制面板里共享网络</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393171752.jpg" alt="enter image description here" /></p>

<p>Dos下运行开启热点</p>

<pre><code>netsh wlan start hostednetwork
</code></pre>

<p><strong>2.3 ssl证书</strong></p>

<p>从fiddler中导出证书</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393263595.png" alt="enter image description here" /></p>

<p>手机中安装fiddler证书</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393221113.png" alt="enter image description here" /></p>

<p>有些app自带证书，可以解包查看</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393248706.png" alt="enter image description here" /></p>

<p>然后合并导入手机中</p>

<h2>0x03 探测修改本地存储</h2>

<hr />

<p><strong>3.1 Root设备</strong></p>

<p>Root后才能进入应用数据目录</p>

<p><strong>3.2 本地存储检索</strong></p>

<p>文件种类： databases - SQLite 数据 shared_prefs – 程序私有文件 cache – 缓存数据 lib – 本地库 files – 其他文件 少数应用在sd卡中也存储数据</p>

<p><strong>3.3 文件管理器应用</strong></p>

<p>ES文件浏览器（不能打开sqlite）</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393312346.jpg" alt="enter image description here" /></p>

<p>RE（root explorer 能直接打开sqlite，要好用一些）</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393340970.png" alt="enter image description here" /></p>

<p><strong>3.4 ADB pull</strong></p>

<p>如果用的es没办法打开sqlite所以才有这步，用re的话就不需要这步可以在手机上直接查看。不过pull到pc上看起来更直观点。 Root权限才能对应用程序目录进行操作。</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393475370.jpg" alt="enter image description here" /></p>

<p>Chmod把权限改为777就可以pull到pc上查看了。</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393461698.jpg" alt="enter image description here" /></p>

<p><strong>3.5 SSH root server</strong></p>

<p>安装SSHdroid，设置好参数即可远程ssh上android设备。</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393427733.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20140723/2014072308393574513.jpg" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20140723/2014072308393598789.jpg" alt="enter image description here" /></p>

<p><strong>3.6 快照分析</strong></p>

<p>通过快照进行差异对比能够快速发现一些本地存储的敏感信息。</p>

<p>在进行操作如输入用户信息前拍下应用目录快照，就是复制一下。</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393626521.jpg" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20140723/2014072308393619848.jpg" alt="enter image description here" /></p>

<p>然后进行进行登陆操作拍下再拍下快照</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393624756.jpg" alt="enter image description here" /></p>

<p>最后用diff比较两次快照</p>

<p><img src="http://static.wooyun.org/20140723/2014072308393671148.jpg" alt="enter image description here" /></p>

<p>总结：这种方法适合文件较多的应用，文件少的应用直接观察文件修改时间，然后进行查看。</p>

<p><strong>3.7 常见漏洞</strong></p>

<p>不必要的敏感信息存储 
敏感信息明文存储在外置设备如sd卡中
敏感信息明文存储在私有目录下 
用弱加密算法加密敏感数据 
加密敏感数据用程序的硬编码的静态密钥 
加密敏感数据的动态密钥存储在全局可读或者私有目录下</p>

<h2>0x04 案例</h2>

<hr />

<p>Logcat信息泄漏</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-014590">WooYun: 光大银行Android手机客户端密码明文泄漏</a> </p>

<p>shared_prefs信息泄漏</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-014308">WooYun: 苏宁易购用户敏感信息泄露</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-054438">WooYun: 百度安卓设计不当重要资讯泄漏</a> </p>

<p>明文传输</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-053037">WooYun: 微付通Android客户端敏感信息明文存储</a> </p>

<p>ssl证书失效</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-027985">WooYun: 中信银行&quot;动卡空间“Android客户端缺陷导致用户名密码等信息被劫持</a> </p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          